Set<Integer> visited;
executeInstruction(Instrucion insn) {
  if (!insn.isInit()) return;
  int oref = getObjectRef();
  if (visited.contains(oref)) return;
  Stack stack = getCurrentThread().getStack();
  Heap heap = getHeap();
  HashData hdata = new HashData();
  foreach (StackFrame sf : stack) {
    // ignores local variables on the stack
    for (int i = sf.getBase(); i < sf.top(); i++) {
      int data = sf.slot(i);
      int tmp = data;
      // not considering arrays and box classes 
      if (isRef(data)) {
        ElementInfo ei = heap.get(data);
        tmp = ei.getOID();
      }
      hdata.add(tmp);
    }
  } 
  heap.get(oref).setOID(hdata.getValue());
}